package com.yfs.bus.entity;

import com.yfs.bus.constans.TimeConstants;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;

/**
 * @description: 出租车实体类
 * @author: xia
 * @since: 2022/4/13
 **/
@Data
public abstract class Bus {

    //出租车类型
    public Integer type;

    //存储出租车动态价格【值为1，表示白天早6点到晚6点;值为2，表示晚上6点到早上6点】
    public HashMap<Integer, LinkedList<BasePrice>> floatPrice;

    public Bus(Integer type,HashMap<Integer, LinkedList<BasePrice>> floatPrice){
        this.type = type;
        this.floatPrice = floatPrice;
    }

    /**
     * @description: 判断白天还是夜晚
     * @param:
     * @return: 1为白天，2为夜晚
     * @author: xia
     * @time: 2022/4/13 11:55
     */
    public Integer getDayType(LocalTime time){
        if(time.isAfter(TimeConstants.DAY_SIX_TIME) && time.isBefore(TimeConstants.NIGHT_SIX_TIME)){
            return 1;
        }else {
            return 2;
        }
    }

    /**
     * @description: 抽象方法，计算总路程价格【如果每种类型的出租车有自己的一些优惠活动，可以在此方法里扩展】
     * @param:
     * @return:
     * @author: xia
     * @time: 2022/4/13 11:06
     */
    public abstract BigDecimal runPrice(LocalTime beginTime,Integer minKm);






}
